10 REM ************************************************************************ 11 REM * F O R M A T R O U T I N E * 12 REM ************************************************************************ 13 REM * COPYRIGHT: * 14 REM * DR.M.IRSKENS * 15 REM * LEVESER ALLEE 13 * 16 REM * 3061 HESPE * 17 REM ************************************************************************ 18 REM * * 19 REM * AUFRUF: * 20 REM * USR(X),FL,NK * 21 REM * X = ZU FORMATIERENDER NUMERISCHER WERT * 22 REM * FL = FELDLAENGE DER FORMATIERTEN ZAHL * 23 REM * NK = ANZAHL NACHKOMMASTELLEN DER FORMATIERTEN ZAHL * 24 REM * DAS ERGEBNIS DER USR-FUNKTION IST DER FORMATIERTE STRING. DIESER * 25 REM * KANN EINER STRINGVARIABLEN ZUGEWIESEN ODER AUSGEDRUCKT WERDEN. * 26 REM * BEISPIELE: * 27 REM * A$=(USR(XY),10,2)+"" * 28 REM * PRINT USR(XY),10,2;" DM" * 29 REM * * 30 REM * BESONDERHEITEN: * 31 REM * WENN NACHKOMMASTELLEN DURCH DAS FORMATIEREN ABGESCHNITTEN WERDEN, * 32 REM * SO WIRD DIE ZAHL GERUNDET. * 33 REM * ZAHLENDARSTELLUNGEN IM E-FORMAT WERDEN EBENFALLS VERARBEITET. * 34 REM * WENN DIE ZAHL IN DER ANGEGEBENEN FELDLAENGE NICHT DARGESTELLT * 35 REM * WERDEN KANN, DANN WIRD DIE ZAHL IN DER NOTWENDIGEN FELDLAENGE DAR- * 36 REM * GESTELLT, UM EINEN ZIFFERVERLUST ZU VERMEIDEN. * 37 REM * * 38 REM * VOR AUFRUF DER FUNKTION MUESSEN FOLGENDE BEFEHLE EINMALIG DURCHGE- * 39 REM * FUEHRT WERDEN: * 40 REM * POKE 785,0 : LOW-BYTE DER STARTADRESSE * 41 REM * POKE 786,192 : HIGH-BYTE DER STARTADRESSE = 49152 * 42 REM * * 43 REM * DIE ROUTINE IST VOLL VERSCHIEBLICH UND KANN DAHER AN JEDER STELLE IM * 44 REM * SPEICHER LIEGEN. DIE ADRESSEN DER USR-FUNKTION SIND DANN ENTSPRECHEND* 45 REM * ANZUPASSEN. * 46 REM * * 47 REM ************************************************************************ 100 S=0:INPUT "STARTADRESSE";B 110 FOR I=B TO B+335 120 READ A 130 S=S+A:POKE I,A 140 NEXT I 150 IF S<>36986 THEN PRINT " FEHLER IN DEN DATAZEILEN [146]":STOP 160 POKE 785,B-256*INT(B/256):POKE 786,B/256 170 PRINT " ALLES OK. " 199 REM TESTBEISPIELE 200 FOR E=0 TO 9 210 F=(null)*10^E 220 A$=(USR(F),11,0)+"" 230 PRINT A$;USR(F),13,1;USR(F),14,2 240 NEXT E 250 END 299 REM DATAZEILEN 300 DATA32,141,173,32,221,189,32,253,174,32,158,183,134,88,32,253,174,32 301 DATA158,183,134,87,104,104,162,255,160,0,232,189,0,1,240,117,201,69,240 302 DATA8,201,46,208,242,138,168,208,238,173,2,1,201,46,208,12,202,160,1 303 DATA200,185,1,1,153,0,1,208,247,189,2,1,41,15,10,133,2,10,10,101,2,125 304 DATA3,1,233,47,188,1,1,192,45,240,23,105,3,134,2,229,2,168,169,48,157 305 DATA0,1,232,136,208,249,169,0,157,0,1,240,168,133,2,169,0,157,0,1,138 306 DATA24,101,2,168,189,0,1,240,8,201,48,176,4,169,48,208,1,202,153,0,1 307 DATA136,208,236,169,46,141,1,1,208,129,152,240,18,165,87,208,7,152,170 308 DATA189,1,1,208,119,169,44,153,0,1,208,12,196,87,240,40,169,44,157,0 309 DATA1,232,208,16,132,2,56,138,229,2,56,233,1,197,87,240,19,176,72,168 310 DATA169,48,157,0,1,232,200,196,87,208,247,169,0,157,0,1,173,1,1,201,48 311 DATA176,17,232,138,168,185,255,0,153,0,1,136,208,247,169,48,141,1,1,228 312 DATA88,176,20,164,88,189,0,1,153,0,1,136,202,16,246,169,32,153,0,1,136 313 DATA16,250,169,0,160,1,76,135,180,56,229,87,133,2,138,56,229,2,170,189 314 DATA0,1,201,53,144,179,138,168,136,240,24,185,0,1,201,48,144,246,24,105 315 DATA1,201,58,153,0,1,208,157,169,48,153,0,1,208,229,138,168,185,0,1,153 316 DATA1,1,136,208,247,169,49,141,1,1,232,208,131